// 函数的类型
/**
 * 1、函数声明
 * 2、函数表达式
 * 3、可选参数
 * 4、形参默认值
 * 5、剩余参数
 */

// 1、函数声明
function sum(x: number, y: number):number {
  return x + y
}

// 函数表达式
const sum2 = (x: number, y: number): number => {
  return x + y
} 


//可选参数
function fn1(x: number, y?: number) {
  console.log('fn1()', x, y)
}
fn1(2)
fn2(2, 3)
//fn3(2, 3, 4) //不可以

//形参默认值
function fn2(x: number, y: number=0) {
  console.log('fn2()', x, y)
}
fn2(1)
fn2(1, 2)

//剩余参数
function push(arr: any[], ...items: any[]): any[] {
  arr.push(...items)
  return arr
}
console.log(push([1,3], 5, 7, 9))

export {}
